package com.hc.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
    * 用户表
    */
@ApiModel(value="com-hc-domain-User")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "tb_user")
public class User implements Serializable {
    private static final long serialVersionUID = 7714153274847479614L;

    /**
     * 编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value="编号")
    private Integer id;

    /**
     * 账号
     */
    @TableField(value = "username")
    @ApiModelProperty(value="账号")
    private String username;

    /**
     * 密码
     */
    @TableField(value = "password")
    @ApiModelProperty(value="密码")
    private String password;

    /**
     * 昵称
     */
    @TableField(value = "nickname")
    @ApiModelProperty(value="昵称")
    private String nickname;

    /**
     * 生日
     */
    @TableField(value = "birth")
    @ApiModelProperty(value="生日")
    @JsonFormat(pattern="yyyy-MM-dd")
    private LocalDate birth;

    /**
     * 性别
     */
    @TableField(value = "gender")
    @ApiModelProperty(value="性别")
    private Boolean gender;

    /**
     * 头像
     */
    @TableField(value = "img")
    @ApiModelProperty(value="头像")
    private String img;

    /**
     * QQ
     */
    @TableField(value = "qq")
    @ApiModelProperty(value="QQ")
    private String qq;

    /**
     * 联系电话
     */
    @TableField(value = "tel")
    @ApiModelProperty(value="联系电话")
    private String tel;

    /**
     * 邮箱
     */
    @TableField(value = "email")
    @ApiModelProperty(value="邮箱")
    private String email;

    /**
     * 排序
     */
    @TableField(value = "level")
    @ApiModelProperty(value="排序")
    private Integer level;

    /**
     * 简介
     */
    @TableField(value = "info")
    @ApiModelProperty(value="简介")
    private String info;

    /**
     * 盐值
     */
    @TableField(value = "salt")
    @ApiModelProperty(value="盐值")
    private String salt;

    /**
     * 入职日期
     */
    @TableField(value = "inTime")
    @ApiModelProperty(value="入职日期")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime inTime;

    /**
     * 离职日期
     */
    @TableField(value = "outTime")
    @ApiModelProperty(value="离职日期")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime outTime;

    /**
     * 状态：1解锁 2锁定 3离职
     */
    @TableField(value = "status")
    @ApiModelProperty(value="状态：1解锁 2锁定 3离职")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "createTime")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "updateTime")
    @ApiModelProperty(value="更新时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

}
